/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Application.Elements;
import Application.SkeletonHelper;
/**
 * Jelgeneratort megvalosito osztaly. Az altala kiadott jelet csak
 * konstrualaskor lehet neki megadni.
 * Nem lehet bemenete.
 * @author Stikmann
 */
public class Wavegen extends Element{
    /**
     * A jelgenerator konstrualasakor kell megadni, milyen jelsorozatot ad ki
     * @param minta A jelsorozatot tartalmazo strng. Formaja: "1001110111", azaz
     * egyesek es nulla sorozata.
     */
    public Wavegen(String minta){
        SkeletonHelper.methodstart("Constructed "+this.toString()+"("+minta+")");
        SkeletonHelper.methodend();
    }

    /**
     * A kimenetere a megadott jelsorozat es az aktualisan kiadott jel erteket.
     * @return Ha valtozott a kimenet, true, egyebkent false
     */
    public boolean simulate(){
        SkeletonHelper.methodstart(this.toString()+"::simulate()");
        SkeletonHelper.methodend("return: ???");
        return false;
    }

    /**
     * Lepteti a jelgeneratort, azaz egy indexet. Ha esetleg tulcsordul,
     * elolrol kezdi.
     */
    public void step(){
         SkeletonHelper.methodstart(this.toString()+"::step()");
         SkeletonHelper.methodend();
    }

    /**
     * Alapallapotba, azaz az elso jelre allitja a kimenetet.
     */
    @Override
    public void reset(){
        SkeletonHelper.methodstart(this.toString()+"::reset()");
        SkeletonHelper.methodend();
    }

    /**
     * Leellenorzi az elemet. A jelgeneratoroknak nem lehet bemenete, ha megis van, hibat
     * ad vissza.
     * @return Ha nincs hiba, null, ha van, a hibauzenet.
     */
    @Override
    public String check(){
        SkeletonHelper.methodstart(this.toString()+"::check()");

        String result=null;
        if (!inputs.isEmpty())
            result="Jelgeneratornak nem lehet bemenete.";

        SkeletonHelper.methodend("return: "+result);
        return result;
    }
}
